package com.bbs.security;

import com.bbs.pojo.Result;
import com.bbs.utils.Constants;
import com.bbs.utils.ObjectUtil;
import org.springframework.http.HttpStatus;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
    @Override
    public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
        Result<Object> result = new Result<>();
        result.setCode(Constants.UNAUTHENTICATED_CODE);
        result.setMessage(Constants.UNAUTHENTICATED_MESSAGE);
        String json = ObjectUtil.object2Json(request);

        response.setStatus(HttpStatus.UNAUTHORIZED.value());
        response.setContentType("application/json");
        response.setCharacterEncoding("utf-8");
        response.getWriter().write(json);
    }
}
